我试图修复git中的一个问题,不小心对之前的一些提交使用了gitreset--hard。所以现在我无法回到原来的头脑。但是我在执行此操作之前确实克隆了存储库,因此我将丢失的提交推回了原始提交。昨天这似乎有效,但今天我看到原来的仍然停留在旧的提交上,而新的似乎不存在。再次尝试从克隆中推送新提交不起作用,因为git告诉我一切都是最新的。我该如何解决这个问题? 最佳答案 让你的HEAD回到正确的位置:gitreflog获取HEAD最近去过的列表。gitshowsha1找到您希望HEAD所在的位置。找到所需的提交后,gitmerge让你的主
我在Github上有一个repo的克隆,我在其中为上游创建了一个新功能。问题是,我是在我的master分支中这样做的,该分支还包含我从其他克隆中提取的其他内容。这完全破坏了我创建合理pull请求的能力。所以我想做以下事情:将我的master分支恢复为与上游master完全相同。创建一个新分支。将我的一些旧提交移至新分支。在分支之外创建pull请求。而且,在未来,我将在分支中完成我的所有工作并从它们创建pull请求,同时让我的master分支单独存在并merge来自上游的任何内容。我的问题是:这是一种合理的方法吗?我实际上应该如何执行第1步和第3步? 最佳答案
我在Github上有一个repo的克隆,我在其中为上游创建了一个新功能。问题是,我是在我的master分支中这样做的,该分支还包含我从其他克隆中提取的其他内容。这完全破坏了我创建合理pull请求的能力。所以我想做以下事情:将我的master分支恢复为与上游master完全相同。创建一个新分支。将我的一些旧提交移至新分支。在分支之外创建pull请求。而且,在未来,我将在分支中完成我的所有工作并从它们创建pull请求,同时让我的master分支单独存在并merge来自上游的任何内容。我的问题是:这是一种合理的方法吗?我实际上应该如何执行第1步和第3步? 最佳答案
如果我执行gitlog,是否有任何我可以指定的参数,以便能够从输出中分辨出每个提交属于哪个分支?编辑:澄清一下,我知道提交可能是两个分支的一部分(例如)。我想要的是获取log中的提交所属的最新分支。所以,如果我从master创建一个名为foo的分支。它属于两个分支,但我想得到foo。 最佳答案 我认为您正在寻找的是非常有用的命令:gitbranch-a--contains...它将告诉您包含该提交的每个分支(本地和远程跟踪)。不幸的是,我不认为有一个gitlog选项可以为每次提交输出它。使用--all--source很接近,但每次提
如果我执行gitlog,是否有任何我可以指定的参数,以便能够从输出中分辨出每个提交属于哪个分支?编辑:澄清一下,我知道提交可能是两个分支的一部分(例如)。我想要的是获取log中的提交所属的最新分支。所以,如果我从master创建一个名为foo的分支。它属于两个分支,但我想得到foo。 最佳答案 我认为您正在寻找的是非常有用的命令:gitbranch-a--contains...它将告诉您包含该提交的每个分支(本地和远程跟踪)。不幸的是,我不认为有一个gitlog选项可以为每次提交输出它。使用--all--source很接近,但每次提
我在本地有两个分支,master和Berislav。后者目前处于事件状态,我已经提交了所有更改。当我尝试checkout到master时,我收到以下消息:error:Yourlocalchangestothefollowingfileswouldbeoverwrittenbycheckout:[listoffileschangedintheactivebranch]Please,commityourchangesorstashthembeforeyoucanswitchbranches.Aborting但是,我尝试的所有其他操作——commit、status、merge——告诉我没有什
我在本地有两个分支,master和Berislav。后者目前处于事件状态,我已经提交了所有更改。当我尝试checkout到master时,我收到以下消息:error:Yourlocalchangestothefollowingfileswouldbeoverwrittenbycheckout:[listoffileschangedintheactivebranch]Please,commityourchangesorstashthembeforeyoucanswitchbranches.Aborting但是,我尝试的所有其他操作——commit、status、merge——告诉我没有什
根据this:ItisimportanttonotethatthisisverydifferentfrommostSCMsystemsthatyoumaybefamiliarwith.Subversion,CVS,Perforce,MercurialandthelikealluseDeltaStoragesystems-theystorethedifferencesbetweenonecommitandthenext.Gitdoesnotdothis-itstoresasnapshotofwhatallthefilesinyourprojectlooklikeinthistreestr
根据this:ItisimportanttonotethatthisisverydifferentfrommostSCMsystemsthatyoumaybefamiliarwith.Subversion,CVS,Perforce,MercurialandthelikealluseDeltaStoragesystems-theystorethedifferencesbetweenonecommitandthenext.Gitdoesnotdothis-itstoresasnapshotofwhatallthefilesinyourprojectlooklikeinthistreestr
如何仅通过分支名称为给定分支中的所有提交生成补丁?此步骤是复杂工作流程的一部分,所有工作流程均已自动化。因此,要求某人手动确定分支中的第一个提交不是一种选择。请注意,任何依赖于reflog的东西都不是一个选项,因为分支中的更改不是在本地进行的。 最佳答案 如果您知道您的“给定分支”是从哪个分支创建的,那么makingapatchiseasy:gitdiffmasterBranch1>../patchfilegitcheckoutBranch2gitapply../patchfile(你可以生成一个patchapplicablewit